package com.itheima.config;

import com.itheima.interceptor.Demo01Interceptor;
import com.itheima.interceptor.Demo02Interceptor;
import com.itheima.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 注解@Configuration：告诉Spring，这个类是一个配置类
 * @author liuyp
 * @since 2025/7/26
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
    /**
     * 这个方法是用于配置 拦截器的。所有拦截器想要生效，都必须在这里配置
     * @param registry 拦截器的注册中心，所有拦截器对象都要注册到这个对象里
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/login");

        // registry.addInterceptor(new Demo02Interceptor())
        //         .addPathPatterns("/**");

        // registry.addInterceptor(new Demo01Interceptor())
        //         //拦截范围：/**表示拦截所有请求
        //         //如果是：/emps/*，表示只拦截一层请求，比如 /emps/1， /emps/a,  /emps/xxx；不能拦截/emps  /emps/a/b
        //         //如果是：/emps/**，表示拦截任意层请求，比如 /emps， /emps/1， /emps/a/b， /emps/a/b/c
        //         .addPathPatterns("/emps/**")
        //         //排除不拦截的范围
        //         .excludePathPatterns("/login");
    }
}
